The present invention relates to a nonvolatile semiconductor memory device, more particularly to an EEPROM (Electrically Erasable and Programmable Read-Only Memory).
As an example of a memory cell of EEPROM known as a flash memory, there is a memory cell having an MOSFET structure, which comprises a floating gate and a control gate. The floating gate (i.e., charge storage layer) is provided on a semiconductor substrate, and the control gate is provided on the charge storage layer. The memory cell stores a 1-bit data which is either “0” or “1”, depending on the amount of electric charge accumulated in the floating gate.
Another type of a memory cell is known, which is designed for use in a flash memory having a large storage capacity. This memory cell can store multi-bit data. A four-value memory cell, for example, can store “0”, “1”, “2” and “3” by accumulating, respectively, four different amounts of charge in the floating gate.
How a four-value memory cell stores multi-bit data will be explained below.
A four-value memory cell assumes a neutral state when its floating gate accumulates no electric charge. A condition in which a more positive charge is accumulated than the neutral state is an erased state, storing data “0”. More specifically, a high voltage of about 20V is applied to the substrate, setting the control gate at 0V, whereby erasing the data, i.e., storing data “0”. The threshold voltage of the four-value memory cell may differ from the design value. If so, the voltage applied to the substrate may be too high, and the floating gate may accumulate an excessively large positive charge and the memory cell is, so to speak, “over-erased.” In the four-value memory cell which has been over-erased, the charge accumulated in the floating gate would not change to a predetermined negative level even if an ordinary programming pulse voltage is applied to the memory cell. In this case, data, particularly “0” cannot be programmed into the four-value memory cell.
The four-value memory cell stores data “1” when the floating gate accumulates a first negative charge. The memory cell stores data “2” when the floating gate accumulates a second negative charge greater than the first. The memory cell stores data “3” when the floating gate accumulates a third negative charge greater than the second negative charge.
To program data into the four-value memory cell, the program operation, the substrate, source and drain are set at 0V and a high voltage (about 20V) is applied to the control gate. When the floating gate accumulates the first negative charge, data “1” is programmed into the memory cell. When the floating gate accumulates the second negative charge, data “2” is programmed into the memory cell. When the floating gate accumulates the third negative charge, data “3” is programmed into the memory cell. When the substrate, the source, drain and channel are set at a positive potential and the control gate is applied with the high voltage (about 20V), while the substrate remains at 0V, the floating gate holds the accumulated charge. In this case, data “0” is programmed into the memory cell.
The four-value memory cell can thus store four values “0”, “1”, “2” and “3”.
A NAND-type memory cell unit is known, which is designed to increase the storage capacity of a flash memory. The NAND-type memory cell unit comprises a plurality of memory cells and two selection transistors. The memory cells are connected in series, forming a series circuit. The first selection transistor connects one end of the series circuit to a bit line. The second selection transistor connects the other end of the series circuit to the common source line of the memory cells.
To program “0” into a selected one of the memory cells of the NAND-type memory cell unit, the bit line and the gate of the first selection transistor are set at the power-supply voltage VCC (e.g., 3V), the control gate of the selected memory cell is set at 20V, the control gates of the two memory cells adjacent to the selected memory cell are set at 0V, and the control gate of any other memory cells is set at 11V.
In this case, the voltage applied from the bit line via the first selection transistor to the channel of the memory cell at one end of the series circuit is equal to or lower than the power-supply voltage VCC. Once the first selection transistor is turned off, however, the channel voltage rises due to the electrostatic capacitive coupling between the control gate and channel of the memory cell.
The two memory cells adjacent to the selected memory cell are thereby turned off, too. If the coupling ratio is 500, the channel potential of the selected memory cell will be 10V, as is obtained by simple calculation. The channel potential of any memory cell not selected will be 5.5V.
When the channel potential of any memory cell not selected is 5.5V, the two memory cells adjacent to the selected memory cell will be turned off if their threshold voltage is equal to or higher than −5.5V. In other words, these memory cells must have a threshold voltage equal to or higher than −5.5V in order to program “0” into the selected memory cell.
To program “1”, “2” or “3” into any selected memory cell of the NAND-type memory cell unit, the bit line is set at 0V. Program verification is performed on the selected memory cell. If a memory cell is found into which the data is not completely programmed, the program operation is effected again on that memory cell.
The threshold voltage of any memory cell is thereby controlled with high precision. The program operation on the NAND-type memory cell unit ends when all the memory cells are verified. Time periods of one cycle for programming “1”, “2” and “3” are set to the same period. Therefore, data “2” and “3” are programmed by controlling the number of cycles for programming. That is, the program operation is effected once to program data “1”, twice to program data “2”, and thrice to program data “3”.
Hence, data “1” is programmed into a memory cell that should store “1” when the program operation is carried out for the first time. Then, data “2” is programmed into a memory cell that should store “2”, and thereafter data “3” is programmed into a memory cell that should store “3.”
There is known another method of programming data into flash memories. In this method, the bit line voltage is changed in accordance with the value of the data to be programmed, whereby “1”, “2” and “3” are written at the same speed, or within the same time period.
The method cannot be used to program data into a NAND-type memory cell unit of the type described above. If the method is so used, however, a voltage higher than 0V of the bit line voltage cannot be transferred to the selected memory cell, if the control gate of the selected memory cell is set at 0V. This is because both memory cells adjacent to the selected memory cell have a threshold voltage which is almost 0V.
The floating gate of a multi-value memory cell must accumulate a larger electric charge to program data into the memory cell than the amount of charge the floating gate of a binary memory cell needs to accumulate to program data. The greater the charge the floating gate accumulates, the higher the rate at which the floating gate is discharged due to a self electromagnetic field. Hence, multi-value memory cells can hold data, but for a shorter time than binary memory cell.
In the conventional nonvolatile memory device having multi-value memory cells, the channel voltage of the selected memory cell at the time of “0” programming rises sufficiently since the channel potential is isolated from the channel voltage any other memory cells. However, when the selected memory cell is over-erased, its threshold voltage decreases excessively and both memory cells adjacent to the selected memory cell cannot be turned off. Consequently, the channel potential of the selected memory cell fails to increase sufficiently, making it impossible to program data “0” into the selected memory cell. It should be noted that the memory cell is over-erased if the erase operation has been performed many times or if an excessively high data-erasing voltage is applied.
Further, the pulse width of a programming pulse which indicates a time period of one cycle of program operation is constant irrespective of the program operations for “1”, “2” and “3”. Therefore, the programming speed for programming “1”, “2” and “3” cannot be made equal. Stated another way, time periods of one cycle for programming “1”, “2” and “3” are set to the same period and data “2” and “3” are written by controlling the number of cycles for programming. Therefore, the programming pulse must be applied at short intervals, and much time is required to rewrite data in the memory.
Further, each multi-value memory cell can hold data, but for a shorter time than a binary memory cell.